Firmware refers to programming instructions that are embedded within an electronic device. For most electronic devices, including communication devices and PDAs, the firmware is stored in the device's memory. The electronic device enables reading and executing the programming instructions, but does not enable modification of the instructions. Unlike software, firmware cannot be modified by application programs. Instead, modification of firmware requires special external hardware. Examples of firmware include computer programs within a read-only memory (ROM) integrated circuit chip, and computer programs embedded within an erasable programmable read-only memory (EPROM) chip.
Firmware in an electronic device needs to be updated from time to time. Updating firmware is done differently than updating software. Generally, software is updated by downloading newer software to a computer storage, and reading the newer software therefrom. In distinction, since electronic devices typically have only limited storage space, firmware updates are made by a manufacturer of the electronic device directly into the device's memory.
When updating firmware from a current version, say, version x, to a new version, say, version y, it is of advantage to generate a difference image, referred to herein as the “diff image” and denoted herein by x→y, representing the difference between version x and version y; and to send only the diff image file for updating the firmware from version x to version y. The electronic device activates an update utility that receives the diff image and updates the firmware with minimal computational and storage space requirements.
Reference is now made to FIG. 1, which is a flowchart of a prior art method for updating firmware on an electronic device via an update server. At step 11, the electronic device reports its current firmware version, say, version x, to a remote firmware update server. At step 12, the update server sends a diff image, x→y, between version x and the new version, say, version y. At step 13, the electronic device receives the diff image x→y. At step 14, the electronic device executes its update utility, which applies the diff image x→y to the current version x, to generate the new version y of the firmware.
For many electronic devices, steps 11 and 12 are performed via over the air communication. A drawback with the use of over the air communication to request and receive the data for firmware update is the time and expense occurred. Use of a diff image minimizes the amount of data transported between the update server and the electronic device, thus saving time and expense—but nevertheless time and expense is occurred.
It would thus be of advantage to update firmware of electronic devices without requiring over the air communication between the electronic device and a remote update server.